// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.loopj.android.http; import android.util.Log; import java.io.File; import java.io.FileNotFoundException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import org.apache.http.HttpEntity; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.message.BasicNameValuePair; // Referenced classes of package com.loopj.android.http: // y, v, A, ResponseHandlerInterface public class RequestParams { public static final String APPLICATION_OCTET_STREAM = "application/octet-stream"; protected static final String LOG_TAG = "RequestParams"; protected boolean autoCloseInputStreams; protected String contentEncoding; protected final ConcurrentHashMap fileParams; protected boolean isRepeatable; protected final ConcurrentHashMap streamParams; protected final ConcurrentHashMap urlParams; protected final ConcurrentHashMap urlParamsWithObjects; protected boolean useJsonStreamer; public RequestParams() { this((Map)null); } public RequestParams(String s, String s1) { this(((Map) (new y(s, s1)))); } public RequestParams(Map map) { urlParams = new ConcurrentHashMap(); streamParams = new ConcurrentHashMap(); fileParams = new ConcurrentHashMap(); urlParamsWithObjects = new ConcurrentHashMap(); contentEncoding = "UTF-8"; if (map != null) { java.util.Map.Entry entry; for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext(); put((String)entry.getKey(), (String)entry.getValue())) { entry = (java.util.Map.Entry)iterator.next(); } } } public transient RequestParams(Object aobj[]) { urlParams = new ConcurrentHashMap(); streamParams = new ConcurrentHashMap(); fileParams = new ConcurrentHashMap(); urlParamsWithObjects = new ConcurrentHashMap(); contentEncoding = "UTF-8"; int i = aobj.length; if (i % 2 != 0) { throw new IllegalArgumentException("Supplied arguments must be even"); } for (int j = 0; j < i; j += 2) { put(String.valueOf(aobj[j]), String.valueOf(aobj[j + 1])); } } private List a(String s, Object obj) { LinkedList linkedlist = new LinkedList(); if (obj instanceof Map) { Map map = (Map)obj; ArrayList arraylist = new ArrayList(map.keySet()); Collections.sort(arraylist); Iterator iterator1 = arraylist.iterator(); do { if (!iterator1.hasNext()) { break; } Object obj1 = iterator1.next(); if (obj1 instanceof String) { Object obj2 = map.get(obj1); if (obj2 != null) { String s1; if (s == null) { s1 = (String)obj1; } else { s1 = String.format("%s[%s]", new Object[] { s, obj1 }); } linkedlist.addAll(a(s1, obj2)); } } } while (true); } else if (obj instanceof List) { List list = (List)obj; int k = list.size(); for (int l = 0; l < k; l++) { Object aobj2[] = new Object[2]; aobj2[0] = s; aobj2[1] = Integer.valueOf(l); linkedlist.addAll(a(String.format("%s[%d]", aobj2), list.get(l))); } } else if (obj instanceof Object[]) { Object aobj[] = (Object[])(Object[])obj; int i = aobj.length; for (int j = 0; j < i; j++) { Object aobj1[] = new Object[2]; aobj1[0] = s; aobj1[1] = Integer.valueOf(j); linkedlist.addAll(a(String.format("%s[%d]", aobj1), aobj[j])); } } else if (obj instanceof Set) { for (Iterator iterator = ((Set)obj).iterator(); iterator.hasNext(); linkedlist.addAll(a(s, iterator.next()))) { } } else { linkedlist.add(new BasicNameValuePair(s, obj.toString())); } return linkedlist; } private HttpEntity a() { UrlEncodedFormEntity urlencodedformentity; try { urlencodedformentity = new UrlEncodedFormEntity(getParamsList(), contentEncoding); } catch (UnsupportedEncodingException unsupportedencodingexception) { Log.e("RequestParams", "createFormEntity failed", unsupportedencodingexception); return null; } return urlencodedformentity; } private HttpEntity a(ResponseHandlerInterface responsehandlerinterface) { boolean flag; v v1; if (!fileParams.isEmpty() || !streamParams.isEmpty()) { flag = true; } else { flag = false; } v1 = new v(responsehandlerinterface, flag); java.util.Map.Entry entry3; for (Iterator iterator = urlParams.entrySet().iterator(); iterator.hasNext(); v1.a((String)entry3.getKey(), entry3.getValue())) { entry3 = (java.util.Map.Entry)iterator.next(); } java.util.Map.Entry entry2; for (Iterator iterator1 = urlParamsWithObjects.entrySet().iterator(); iterator1.hasNext(); v1.a((String)entry2.getKey(), entry2.getValue())) { entry2 = (java.util.Map.Entry)iterator1.next(); } java.util.Map.Entry entry1; for (Iterator iterator2 = fileParams.entrySet().iterator(); iterator2.hasNext(); v1.a((String)entry1.getKey(), entry1.getValue())) { entry1 = (java.util.Map.Entry)iterator2.next(); } Iterator iterator3 = streamParams.entrySet().iterator(); do { if (!iterator3.hasNext()) { break; } java.util.Map.Entry entry = (java.util.Map.Entry)iterator3.next(); StreamWrapper streamwrapper = (StreamWrapper)entry.getValue(); if (streamwrapper.inputStream != null) { v1.a((String)entry.getKey(), StreamWrapper.a(streamwrapper.inputStream, streamwrapper.name, streamwrapper.contentType, streamwrapper.autoClose)); } } while (true); return v1; } private HttpEntity b(ResponseHandlerInterface responsehandlerinterface) { A a1 = new A(responsehandlerinterface); a1.a(isRepeatable); java.util.Map.Entry entry2; for (Iterator iterator = urlParams.entrySet().iterator(); iterator.hasNext(); a1.a((String)entry2.getKey(), (String)entry2.getValue())) { entry2 = (java.util.Map.Entry)iterator.next(); } BasicNameValuePair basicnamevaluepair; for (Iterator iterator1 = a(null, urlParamsWithObjects).iterator(); iterator1.hasNext(); a1.a(basicnamevaluepair.getName(), basicnamevaluepair.getValue())) { basicnamevaluepair = (BasicNameValuePair)iterator1.next(); } Iterator iterator2 = streamParams.entrySet().iterator(); do { if (!iterator2.hasNext()) { break; } java.util.Map.Entry entry1 = (java.util.Map.Entry)iterator2.next(); StreamWrapper streamwrapper = (StreamWrapper)entry1.getValue(); if (streamwrapper.inputStream != null) { a1.a((String)entry1.getKey(), streamwrapper.name, streamwrapper.inputStream, streamwrapper.contentType); } } while (true); java.util.Map.Entry entry; FileWrapper filewrapper; for (Iterator iterator3 = fileParams.entrySet().iterator(); iterator3.hasNext(); a1.a((String)entry.getKey(), filewrapper.file, filewrapper.contentType)) { entry = (java.util.Map.Entry)iterator3.next(); filewrapper = (FileWrapper)entry.getValue(); } return a1; } public void add(String s, String s1) { if (s != null && s1 != null) { Object obj = urlParamsWithObjects.get(s); if (obj == null) { obj = new HashSet(); put(s, obj); } if (obj instanceof List) { ((List)obj).add(s1); } else if (obj instanceof Set) { ((Set)obj).add(s1); return; } } } public HttpEntity getEntity(ResponseHandlerInterface responsehandlerinterface) { if (useJsonStreamer) { return a(responsehandlerinterface); } if (streamParams.isEmpty() && fileParams.isEmpty()) { return a(); } else { return b(responsehandlerinterface); } } protected String getParamString() { return URLEncodedUtils.format(getParamsList(), contentEncoding); } protected List getParamsList() { LinkedList linkedlist = new LinkedList(); java.util.Map.Entry entry; for (Iterator iterator = urlParams.entrySet().iterator(); iterator.hasNext(); linkedlist.add(new BasicNameValuePair((String)entry.getKey(), (String)entry.getValue()))) { entry = (java.util.Map.Entry)iterator.next(); } linkedlist.addAll(a(null, urlParamsWithObjects)); return linkedlist; } public void put(String s, int i) { if (s != null) { urlParams.put(s, String.valueOf(i)); } } public void put(String s, long l) { if (s != null) { urlParams.put(s, String.valueOf(l)); } } public void put(String s, File file) { put(s, file, null); } public void put(String s, File file, String s1) { if (file == null || !file.exists()) { throw new FileNotFoundException(); } if (s != null) { fileParams.put(s, new FileWrapper(file, s1)); } } public void put(String s, InputStream inputstream) { put(s, inputstream, null); } public void put(String s, InputStream inputstream, String s1) { put(s, inputstream, s1, null); } public void put(String s, InputStream inputstream, String s1, String s2) { put(s, inputstream, s1, s2, autoCloseInputStreams); } public void put(String s, InputStream inputstream, String s1, String s2, boolean flag) { if (s != null && inputstream != null) { streamParams.put(s, StreamWrapper.a(inputstream, s1, s2, flag)); } } public void put(String s, Object obj) { if (s != null && obj != null) { urlParamsWithObjects.put(s, obj); } } public void put(String s, String s1) { if (s != null && s1 != null) { urlParams.put(s, s1); } } public void remove(String s) { urlParams.remove(s); streamParams.remove(s); fileParams.remove(s); urlParamsWithObjects.remove(s); } public void setAutoCloseInputStreams(boolean flag) { autoCloseInputStreams = flag; } public void setContentEncoding(String s) { if (s != null) { contentEncoding = s; return; } else { Log.d("RequestParams", "setContentEncoding called with null attribute"); return; } } public void setHttpEntityIsRepeatable(boolean flag) { isRepeatable = flag; } public void setUseJsonStreamer(boolean flag) { useJsonStreamer = flag; } public String toString() { StringBuilder stringbuilder = new StringBuilder(); java.util.Map.Entry entry2; for (Iterator iterator = urlParams.entrySet().iterator(); iterator.hasNext(); stringbuilder.append((String)entry2.getValue())) { entry2 = (java.util.Map.Entry)iterator.next(); if (stringbuilder.length() > 0) { stringbuilder.append("&"); } stringbuilder.append((String)entry2.getKey()); stringbuilder.append("="); } for (Iterator iterator1 = streamParams.entrySet().iterator(); iterator1.hasNext(); stringbuilder.append("STREAM")) { java.util.Map.Entry entry1 = (java.util.Map.Entry)iterator1.next(); if (stringbuilder.length() > 0) { stringbuilder.append("&"); } stringbuilder.append((String)entry1.getKey()); stringbuilder.append("="); } for (Iterator iterator2 = fileParams.entrySet().iterator(); iterator2.hasNext(); stringbuilder.append("FILE")) { java.util.Map.Entry entry = (java.util.Map.Entry)iterator2.next(); if (stringbuilder.length() > 0) { stringbuilder.append("&"); } stringbuilder.append((String)entry.getKey()); stringbuilder.append("="); } BasicNameValuePair basicnamevaluepair; for (Iterator iterator3 = a(null, urlParamsWithObjects).iterator(); iterator3.hasNext(); stringbuilder.append(basicnamevaluepair.getValue())) { basicnamevaluepair = (BasicNameValuePair)iterator3.next(); if (stringbuilder.length() > 0) { stringbuilder.append("&"); } stringbuilder.append(basicnamevaluepair.getName()); stringbuilder.append("="); } return stringbuilder.toString(); } private class StreamWrapper { public final boolean autoClose; public final String contentType; public final InputStream inputStream; public final String name; static StreamWrapper a(InputStream inputstream, String s, String s1, boolean flag) { if (s1 == null) { s1 = "application/octet-stream"; } return new StreamWrapper(inputstream, s, s1, flag); } public StreamWrapper(InputStream inputstream, String s, String s1, boolean flag) { inputStream = inputstream; name = s; contentType = s1; autoClose = flag; } } private class FileWrapper { public final String contentType; public final File file; public FileWrapper(File file1, String s) { file = file1; contentType = s; } } }